/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.gob.fonafe.service.impl;

import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import pe.gob.fonafe.dao.MuebleDAO;
import pe.gob.fonafe.domain.BusquedaBean;
import pe.gob.fonafe.domain.GaleriaFotosBean;
import pe.gob.fonafe.domain.MuebleBean;
import pe.gob.fonafe.domain.TipoMuebleBean;
import pe.gob.fonafe.service.MuebleService;

/**
 *
 * @author Irving
 */
@Service
public class MuebleServiceImp implements MuebleService{

    private static final Logger logger = Logger.getLogger(MuebleServiceImp.class);
    
    @Autowired
    private MuebleDAO muebleDAO;
    
    public List<MuebleBean> busqueda(BusquedaBean busquedaBean) {
         List<MuebleBean> listResult = new ArrayList<MuebleBean>();
        try{
            listResult = muebleDAO.busqueda(busquedaBean);
        }catch(Exception ex){
            logger.error(ex);
        }
        return listResult;
    }
    
    public List<MuebleBean> busquedaGLC(BusquedaBean busquedaBean) {
         List<MuebleBean> listResult = new ArrayList<MuebleBean>();
        try{
            listResult = muebleDAO.busquedaGLC(busquedaBean);
        }catch(Exception ex){
            logger.error(ex);
        }
        return listResult;
    }

    public List<GaleriaFotosBean> GaleriaFotosMueble(String idMueble) {
        List<GaleriaFotosBean> listGaleriaResult = new ArrayList<GaleriaFotosBean>();
        try{
            listGaleriaResult = muebleDAO.GaleriaFotosMueble(idMueble);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        logger.info("Total List Fotos Service [" + listGaleriaResult.size() + "]");
        return  listGaleriaResult;
    }

    public String[] getOutputFileReclamoConsultaMueble(String idConsRecl, String idMueble, byte[] file, String nomFile, String typeFile) {
         String[] outPutsFileConsRecl = new String[2];
        try{
            outPutsFileConsRecl = muebleDAO.registraFilesConsultaReclamoMueble(idConsRecl, idMueble, file,nomFile,typeFile);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outPutsFileConsRecl;
    }

    public List<TipoMuebleBean> ListarTipoMueble() {
         List<TipoMuebleBean> lista = new ArrayList<TipoMuebleBean>();
        try{
            lista = muebleDAO.ListarTipoMueble();
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        logger.info("Total List Fotos Service [" + lista.size() + "]");
        return  lista;
    }

    public List<GaleriaFotosBean> getGaleriaFotos(String idMueble) {
         List<GaleriaFotosBean> listGaleriaResult = new ArrayList<GaleriaFotosBean>();
        try{
            listGaleriaResult = muebleDAO.getGaleriaPorMuble(idMueble);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        logger.info("Total List Fotos Service [" + listGaleriaResult.size() + "]");
        return  listGaleriaResult;
    }

    public String[] actualizarDetMuebleGLC(MuebleBean muebleBean) {
         String[] outData = new String[2];
        try{
            outData = muebleDAO.actualizarDetMuebleGLC(muebleBean);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outData;
    }

    public String[] EliminarGalMueble(String idsGal) {
        String[] outPutsFileConsRecl = new String[2];
        try{
            outPutsFileConsRecl = muebleDAO.EliminarGalMueble(idsGal);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outPutsFileConsRecl;
    }

    public String[] getOutputFileMueble(String idMueble, byte[] fileToArrayBytes) {
         String[] outPutsFileConsRecl = new String[2];
        try{
           outPutsFileConsRecl = muebleDAO.registraGaleriaMueble(idMueble,fileToArrayBytes);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outPutsFileConsRecl;
    }

    public String[] guardaMuebleGLC(MuebleBean muebleBean) {
         String[] outPutsConsultaReclamo = new String[2];
        try{
            outPutsConsultaReclamo = muebleDAO.guardaMuebleGLC(muebleBean);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        logger.info("Total Outputs Service [" + outPutsConsultaReclamo.length + "]");
        return outPutsConsultaReclamo;
    }

    public String[] eliminaMuebleGLC(String idMueble) {
         String[] outPuts = new String[2];
        try{
            outPuts = muebleDAO.eliminaMuebleGLC(idMueble);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outPuts;
    }

    public List<MuebleBean> ObtenerTopMueble() {
         List<MuebleBean> listResult = new ArrayList<MuebleBean>();
        try{
            listResult = muebleDAO.ObtenerTopMueble();
        }catch(Exception ex){
            logger.error(ex);
        }
        return listResult;
    }


    
}
